package com.javaee.ch09.dao;


import com.javaee.ch09.common.base.GenericDao;
import com.javaee.ch09.entity.Book;
import org.springframework.stereotype.Component;

import java.util.Date;

/**
 * 数据访问对象（DAO）类，用于管理 Book 实体对象。 继承自 GenericDao，提供添加、删除、查询和更新 Book 对象的基本功能。
 */
@Component
public class BookDao extends GenericDao<Book> {

    /**
     * 初始化 图书数据集合
     */
    public BookDao() {
        // 插入10条书籍数据
        this.addEntity(new Book("红楼梦", "曹雪芹", "9787020093020", "人民文学出版社", 2004, "文学", "中文", "理科1室", 1, "中国古典文学名著之一",
                new Date(), new Date()));
        this.addEntity(new Book("围城", "钱钟书", "9787108018809", "生活·读书·新知三联书店", 1991, "文学", "中文", "理科2室", 1,
                "描绘了抗战初期的一群知识分子的精神风貌", new Date(), new Date()));
        this.addEntity(new Book("三体", "刘慈欣", "9787536692930", "重庆出版社", 2008, "科幻", "中文", "理科1室", 1, "中国科幻文学的里程碑之作",
                new Date(), new Date()));
        this.addEntity(new Book("活着", "余华", "9787532742829", "作家出版社", 1993, "文学", "中文", "文科1室", 1,
                "讲述了一个普通人在中国历史变革中的苦难", new Date(), new Date()));
        this.addEntity(new Book("百年孤独", "加西亚·马尔克斯", "9787544258998", "南海出版公司", 1967, "文学", "中文", "文科1室", 1,
                "魔幻现实主义文学的代表作", new Date(), new Date()));
        this.addEntity(new Book("1984", "乔治·奥威尔", "9787532753315", "上海译文出版社", 1949, "政治讽刺", "中文", "文科2室", 1,
                "反乌托邦三部曲之一", new Date(), new Date()));
        this.addEntity(new Book("追风筝的人", "卡勒德·胡赛尼", "9787208061644", "上海人民出版社", 2003, "文学", "中文", "珍藏室", 1,
                "描绘了阿富汗动荡时期的人性与救赎", new Date(), new Date()));
        this.addEntity(new Book("白夜行", "东野圭吾", "9787544267618", "南海出版公司", 1999, "悬疑", "中文", "文科2室", 1, "日本推理小说的杰作",
                new Date(), new Date()));
        this.addEntity(new Book("哈利·波特与魔法石", "J.K.罗琳", "9787229059321", "人民文学出版社", 1997, "奇幻", "中文", "珍藏室", 1,
                "哈利·波特系列的开篇之作", new Date(), new Date()));
        this.addEntity(new Book("小王子", "安托万·德·圣埃克苏佩里", "9787544256486", "天津人民出版社", 1943, "文学", "中文", "文科2室", 1,
                "法国经典童话，寓意深刻", new Date(), new Date()));
    }

    // 可以在这里添加 BookDao 特定的方法，例如根据书名查询书籍等

}
